package com.geek.javase.ch13.work.deepclone;

/*
 *@author wangpeng
 *2025/10/27 21:18
 *@description TODO
 */
/**
 * 深克隆：建议方式，使用内存的字节流ByteArrayOutputStream和ByteArrayInputStream存储对象的字节序列，
 * 通过ObjectOutputStream和ObjectInputStream完成序列化和反序列化操作，从而达到深克隆的目的。
 */
public class Test {
    public static void main(String[] args) throws CloneNotSupportedException {
        System.out.println("----------------深克隆----------------");
        Phone phone = new Phone("vivo",7999);
        Person person = new Person("张三",20,phone);
        Person person1 = person.clone();
        System.out.println(person);
        System.out.println(person1);

        System.out.println("----------------序列化和反序列化实现深克隆----------------");
        person.setName("李四");
        System.out.println( person);
        System.out.println( person1);

        person.getPhone().setBrand("华为");
        System.out.println(person);
        System.out.println(person1);


    }
}
